/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package recommender.dbi;

import java.util.Date;
import java.util.List;
import recommender.objects.Context;
import recommender.objects.Entity;
import recommender.objects.Preference;
import recommender.objects.User;
import recommender.objects.Video;

/**
 *
 * @author Aya
 */
public abstract class UBI {
    
    public abstract int createUser(String un, String pwd, String n, String country, Date dob);
    public abstract User loadUser(String un, String pwd);
    public abstract User loadUser(int uid);
    public abstract List<Entity> getInterests(int uid);
    public abstract List<Entity> getDisinterests(int uid);
    public abstract List<Video> getLikeVideos(int uid);
    public abstract List<Video> getDislikeVideos(int uid);
    public abstract boolean isValid(String uname);
    public abstract void setLike(int uid, int cid, int vid, boolean like);
    public abstract void setInterest(int uid, int cid, String eid, boolean like);
    public abstract void updatePreference(int uid, boolean threshold, int v_threshold, int e_threshold, int nvid, int nint);
    public abstract void forgetUser(int uid);
    public abstract Preference getPreferences(int uid);
    public abstract void setActiveContext(int uid, int cid);
    public abstract int addContext(int cid, String n);
    public abstract void renameContext(int cid, String n);
    public abstract Context getCurActive(int uid);
    public abstract List<Context> getContexts(int uid);
}
